#!/bin/bash 
# 
# 本文件编辑时，需要再gitee在线编辑，不要在本地编辑，以免增加windows的crlf字符导致wget失败
# 这里只是安装mysql，但并不会创建数据库、导入数据，这里的目的是如果用户用的是rds数据库，数据库不再本地服务器的话，当系统进行一键更新时，也能通过mysql命令进行自动化更新，免得服务器没有mysql命令导致更新时无法执行mysql数据库的改动。
# 需要提前设定数据库root新密码的变量 mysql_pwd 、db_name  ，如 mysql_pwd=`openssl rand -base64 12`1#23      db_name=wangmarket
#### Mysql 安装开始 #####
# 安装mysql
cd /root
echo '开始安装mysql'
#移除mariadb数据库
yum -y remove mariadb-libs.x86_64
# 解决某些服务器安装异常：源 "MySQL 5.7 Community Server" 的 GPG 密钥已安装，但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
#下载mysql源安装包
echo '下载mysql源安装包'
wget http://down.zvo.cn/centos/mysql57-community-release-el7-8.noarch.rpm
# 安装mysql源
yum -y localinstall mysql57-community-release-el7-8.noarch.rpm
#安装相关依赖
yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake bison git openssl openssl-devel
#安装mysql
yum -y install mysql-community-server
#启动mysql
systemctl start mysqld
#开机启动
systemctl enable mysqld
systemctl daemon-reload
#开启防火墙
systemctl start firewalld
#放开3306端口访问权限
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重新载入防火强
firewall-cmd --reload
#设置完后重启mysql服务
systemctl restart mysqld
echo 'mysql安装完成'
# 一些变量
# 临时变量，用于截取root初始密码
mysql_oldpwd_temp=`grep 'temporary password' /var/log/mysqld.log`
# root用户初始密码
mysql_oldpwd=${mysql_oldpwd_temp#*root@localhost: }
# 安装完成，修改root密码
mysql -uroot -p$mysql_oldpwd --connect-expired-password -e "set password=password('$mysql_pwd');"
# root用户赋予远程连接权限
mysql -uroot -p$mysql_pwd mysql -e "update user set host = '%' where user = 'root';"
#设置完后重启mysql服务
systemctl restart mysqld
#### Mysql 安装结束 #####